Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
¿Cómo puedo manejar el error "conectar ETIMEDOUT" cuando la URL está sobrecargada con "Cuellos de botella"?

Estoy publicando una solicitud con NodeJs. Aquí está mi código:

 var request = require('request'); var rp = require('request-promise'); async function sendRequest(obj){ try{ // TRY STARTS HERE var requestTarget = await rp({ method: 'POST', uri: obj.url, headers: { "accept": "*/*", "accept-language": "en-US,en;q=0.9,ar-AE;q=0.8,ar;q=0.7", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"99\", \"Google Chrome\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"macOS\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest", "cookie":obj.cookie, "Referer":obj.referer , "Referrer-Policy": "strict-origin-when-cross-origin" }, timeout:16000, body : obj.body }).then( (response)=>{ return response }) // TRY ENDS HERE }catch(error){ // catch STARTS HERE console.error( " error is :" +error); }// catch ENDS HERE console.log(" response is : " +requestTarget); }

De todos modos, tengo un problema con la solicitud: conecte ETIMEDOUT cuando ejecuto el código y no tengo idea de cómo solucionarlo.

¿Qué podría causar este error? y ¿cómo puedo manejar este servidor?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

ETIMEDOUT significa que el servidor no respondió a su solicitud en el tiempo de espera dado (en su ejemplo, 16 segundos). Ese error se puede manejar en el bloque catch.

about 4 years ago · Juan Pablo Isaza Denunciar

0

El título de su pregunta menciona que cree que su servidor de destino está sobrecargado. Los errores ETIMEDOUT pueden aparecer en esa situación. ¿Ataque de denegación de servicio?

No tiene mucho que pueda hacer en su código al intentar la conexión de salida, excepto detectar el error, esperar un período de tiempo e intentarlo nuevamente.

Idealmente, cada vez consecutiva que detecte el error, esperará el doble de tiempo antes de volver a intentarlo. Para la primera espera, use un segundo. Luego espera 2, 4, 8, 16 y así sucesivamente. Desea darle al servidor de destino la oportunidad de trabajar a través de su cola de conexión, y martillarlo ralentiza ese proceso.

Después de un minuto más o menos deberías rendirte. Envíe un error a su sistema de registro de errores si tiene uno. Si su servicio es un servicio web, envíe a SU cliente un 500 (error de servidor genérico), 502 (puerta de enlace incorrecta al servidor ascendente) o 504 (tiempo de espera agotado del servidor ascendente), según lo que tenga sentido para su aplicación.

Si también controla el servidor de destino, puede averiguar qué está sucediendo allí. Es posible que necesite más capacidad. O un cliente deshonesto puede estar dando en el blanco muy fuerte. Es posible que su objetivo esté experimentando un ataque de denegación de servicio.

Manejar los errores de ETIMEDOUT es un dolor en el xxx. Si su servicio no es de misión crítica y esto no sucede muy a menudo, simplemente puede emitir el error 500, 502 o 504 a su cliente. Sin embargo, no olvide registrar el error: arreglar la situación puede requerir intervención humana.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda